iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Software Development

溫柔學姐的Kotlin補課/教學系列 第 8

週末雨會(二):變數基本型態 Basic Types

  • 分享至 

  • xImage
  •  

「強硬的將變數改變型態會發生什麼問題?」詩憶好奇地發問。

「什麼都可能發生。」

唯心從包裡掏出一張紙,展開後放在詩憶桌上,這是一張因為放歪而印壞的A4紙。

「好一點的情況,像這張講義,列印超出範圍,內容被截斷仍然可以取得一些資訊,這通常發生在相似型態之間的轉換;壞一點的情況,不同資訊湊在一起,讓程式崩壞。」

她手腕一轉,「唰」地一聲將講義翻面,各種顏色的計算式中間還混雜少許塗鴉,看起來是被某人當作廢紙利用。

唯心把紙張摺好收回包裡,拿出另一張白紙。「剛剛說的好壞是針對程式是否能執行,如果是考慮到結果正確性的話,前者也可能會很糟糕,因為沒注意到程式裡被埋下一顆未爆彈。」

詩憶緊張的吞了吞口水。

唯心放下筆,以指節敲擊單詞NumbersBooleansCharactersStringsArrays。「這些是基本型態,中文翻譯成數字、布林值、字元、字串和陣列,其他型態都來自它們的組合。」

資訊太多,詩憶一時腦袋轉不過來。

「這些不難記,之前妳已經見過半數的成員——CharactersCharactersNumbers。」唯心不知道詩憶腦海裡還存著剛剛的塗鴉,打開之前的程式檔案,把'+'"Hello World!"指出來。「單引號包夾的是字元Characters,雙引號包夾的是字串String;兩者的差別還有一個,字元只有一個字符。」

最後她把游標移動到1上,想了想決定講更多一點,開了一個新檔案。

「至於數字Number的話,剛剛提到的相似型態,正好可以用數字大家庭說明。小數在程式裡被稱為浮點數,把浮點數直接轉型成整數,會只留整數的地方。」

fun main() {
    val x = 1.5
    val y = x.toInt()
    println(x)
    println(y)
}

程式結果輸出1.51

fun main() {
    val x = -1.5
    val y = x.toInt()
    println(x)
    println(y)
}

程式結果輸出-1.5-1

「既然說是大家庭,成員當然不止兩位。根據能存的數字長度,整數又被分成四個形態,其中最常用的是IntLong。單純寫1就是Int,想表明是Long的話寫成1L。而浮點數就只分成兩個,FloatDouble。這兩張圖是從官網印下來的,給妳參考。」

詩憶從她手中接過兩張印得整整齊齊的A4紙。

https://kotlinlang.org/docs/basic-types.html#integer-types
圖1

https://kotlinlang.org/docs/basic-types.html#floating-point-types
圖2

注意到外面的天色暗下來,而基本型態除布林值和陣列以外也差不多講完了,唯心走去窗邊低頭注視下方的行人。

「至於無符號整數,這堂課是不會考,不過可以先記著它的存在,因為沒有負數的存在,最大值大了近兩倍。比如Int的最大值是2的31次方減1,對應的UInt範圍就是0到2的32次方減1。布林值和陣列我們用到時再說,外面雨好像停了,一起去吃晚餐吧。」來時濕掉的外衣已經乾了,她穿上後挽著提包,在門邊等著詩憶。


上一篇
週末雨會(一):變數的兩種狀態 val vs var
下一篇
週末雨會(三):用迴圈跑陣列再加上條件式 Array Loops And Conditions
系列文
溫柔學姐的Kotlin補課/教學31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言